package org.example.authservice.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.example.authservice.pojo.Role;

import java.util.List;

/**
 * @author lj20050120
 */
@Mapper
    public interface RoleMapper extends BaseMapper<Role> {
    /**
     * 根据用户id获取角色id
     * @param id 用户id
     * @return 角色id列表
     */
    @Select("select role_id from user_role where user_id = #{id}")
    List<Integer> getUserRoleById(Integer id);
    /**
     * 根据角色id获取权限id
     * @param id 角色id
     * @return 权限id列表
     */
    @Select("select permission_id from permission_role where role_id = #{id}")
    List<Integer> getPermissionRoleById(Integer id);
    /**
     * 根据角色id获取角色信息
     * @param id 角色id
     * @return 角色信息
     */
    @Select("select * from role where id = #{id}")
    Role getRoleById(Integer id);
    /**
     * 添加用户角色关系
     * @param idByUsername 用户id
     */
    @Insert("insert into user_role(user_id, role_id) values(#{idByUsername},2)")
    void addUser(Integer idByUsername);
    /**
     * 添加角色权限关系
     * @param name 角色名称
     * @param comment 角色描述
     */
    @Insert("insert into role(name,comment) values(#{name},#{comment})")
    void addRole(String name,String comment);
    /**
     * 根据角色名称获取角色id
     * @param name 角色名称
     * @return 角色id
     */
    @Select("select id from role where name = #{name}")
    Integer findId(String name);
}